SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE  Procedure [dbo].[SP_TDMOVI_CAJA_I04]  
/*-------------------------------------------------------*/  
/*---Empresa              : OFISIS S.A.                --*/  
/*---Cliente              : OFISIS                     --*/  
/*---Sistema              : Tesoreria                  --*/  
/*---Mödulo               : Empresa                    --*/  
/*---Programa             : Inserta Distribuci½n y     --*/  
/*---                       update Cabecera si es dif. --*/  
/*---                       Movimiento Caja            --*/  
/*---                       (Ingresos)                 --*/    
/*---Script               : tdbanc_p.sql               --*/  
/*---Nombre SP            : SP_TDMOVI_CAJA_I04         --*/  
/*---Desarrollado por     : Ernesto G½mez T.           --*/  
/*---Fecha Creaciön       : 02/02/2004                 --*/  
/*---Base Datos           : Microsoft Sql Server       --*/  
/*---Versiön              : 7.0                        --*/  
/*---Invoca a SP          :                            --*/  
/*-------------------------------------------------------*/  
  
/*-------------------------------------------------------*/    
/*---ModIficado 1 por     :Maribel Julca Rodriguez     --*/    
/*---Fecha ModIficaci,n   :22/01/2005                  --*/     
/*---Detalle ModIficaci,n :ingreso de campos CO_USUA_CREA, CO_USUA_MODI --*/    
/*-------------------------------------------------------*/    
/*-------------------------------------------------------*/  
/*---Comentarios                                       --*/  
/*---                                                  --*/  
/*---                                                  --*/  
/*-------------------------------------------------------*/  
/*-------------------------------------------------------*/  
/*--- Drop Proc SP_TDMOVI_CAJA_I04                      --*/  
/*--- Grant all on SP_TDMOVI_CAJA_I04 to public         --*/   
/*--- SP_TDMOVI_CAJA_I04                              --*/  
/*-------------------------------------------------------*/  
  
@ISCO_EMPR   TD_VC_002,   
@ISCO_USUA_MODI  TD_VC_008_USUA,  
@ISCO_CAJA   TD_VC_008,  
@ISAA_CAJA   TD_VC_004,  
@ISMM_CAJA   TD_VC_002,  
@ISTI_MOVI_CAJA  TD_VC_001,  
@ISNU_COMP_CAJA  TD_VC_008,   
@INNU_SECU   TD_IN_001,  
@ISCO_CNTA_EMPR  TD_VC_020,  
@ISTI_MOVI  TD_VC_001,  
@ISCO_TIPO_AUXI  TD_VC_001,  
@ISCO_AUXI_EMPR  TD_VC_020,  
@ISCO_ORDE_SERV  TD_VC_020,  
@ISST_DIST  TD_VC_001,  
@INPO_DIST  TD_NU_016_004,  
@INIM_DIST  TD_NU_016_004,  
@ISTI_TIPO  TD_VC_001
	As
Declare   
@VNIM_MOVI_ANTE  TD_NU_016_004,    
@VNIM_DIST TD_NU_016_004  
  
 Begin Tran SP_TDMOVI_CAJA_I04  
 SELECT @VNIM_DIST = 0  
 SELECT @VNIM_MOVI_ANTE = 0  
  
     If @ISTI_TIPO = 'I'  
  
 Insert Into TDCAJA_DIST (CO_EMPR, CO_CAJA, AA_CAJA, MM_CAJA,  
  TI_MOVI, NU_COMP_CAJA, NU_SECU, CO_CNTA_EMPR,  
  TI_MOVI_OPER, CO_TIPO_AUXI, CO_AUXI_EMPR, CO_ORDE_SERV,  
  ST_DIST, PO_DIST, IM_DIST, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)  
 Values  (  @ISCO_EMPR, @ISCO_CAJA, @ISAA_CAJA,  
  @ISMM_CAJA, @ISTI_MOVI_CAJA, @ISNU_COMP_CAJA, @INNU_SECU,  
  @ISCO_CNTA_EMPR, @ISTI_MOVI,  
  @ISCO_TIPO_AUXI, @ISCO_AUXI_EMPR,  
  @ISCO_ORDE_SERV, @ISST_DIST,  
  @INPO_DIST, @INIM_DIST, @ISCO_USUA_MODI, GETDATE(), @ISCO_USUA_MODI, GETDATE())   
        If @@error <> 0  
           Begin  
            Rollback tran  
       Return  
           End      
  
     If @ISTI_TIPO = 'U'  
  
 Update  TDCAJA_DIST  
 Set CO_CNTA_EMPR = @ISCO_CNTA_EMPR,  
  TI_MOVI_OPER = @ISTI_MOVI,  
  CO_TIPO_AUXI = @ISCO_TIPO_AUXI,  
  CO_AUXI_EMPR = @ISCO_AUXI_EMPR,  
  CO_ORDE_SERV = @ISCO_ORDE_SERV,  
  ST_DIST = @ISST_DIST,  
  PO_DIST = @INPO_DIST,  
  IM_DIST  = @INIM_DIST,  
  CO_USUA_MODI = @ISCO_USUA_MODI,  
  FE_USUA_MODI =  Getdate()  
 Where  CO_EMPR = @ISCO_EMPR  
  And CO_CAJA = @ISCO_CAJA  
  And AA_CAJA =  @ISAA_CAJA  
  And MM_CAJA =  @ISMM_CAJA  
  And TI_MOVI = @ISTI_MOVI_CAJA  
  And NU_COMP_CAJA = @ISNU_COMP_CAJA  
  And NU_SECU = @INNU_SECU  
        If @@error <> 0  
           Begin  
            Rollback tran  
       Return  
           End    
  
     If @ISTI_TIPO = 'D'  
  
 Delete  TDCAJA_DIST  
 Where  CO_EMPR = @ISCO_EMPR  
  And CO_CAJA =  @ISCO_CAJA  
  And AA_CAJA =  @ISAA_CAJA  
  And MM_CAJA =  @ISMM_CAJA  
  And TI_MOVI =  @ISTI_MOVI_CAJA  
  And NU_COMP_CAJA = @ISNU_COMP_CAJA  
  And NU_SECU = @INNU_SECU  
        If @@error <> 0  
           Begin  
            Rollback tran  
       Return  
           End      
     Select @VNIM_MOVI_ANTE  = Round(Isnull(IM_MOVI,0),2)  
     From   TCMOVI_CAJA  
     Where  CO_EMPR = @ISCO_EMPR  
     And    CO_CAJA = @ISCO_CAJA   
     And    AA_CAJA = @ISAA_CAJA  
     And    MM_CAJA = @ISMM_CAJA   
     And    TI_MOVI = @ISTI_MOVI_CAJA  
     And    NU_COMP_CAJA = @ISNU_COMP_CAJA  
  
  
     If  @ISTI_MOVI_CAJA = 'I'  
         Select @VNIM_DIST = Round(Sum(Case When TI_MOVI_OPER = 'C' Then (-1)*IsNull(IM_DIST,0) ELSE IsNull(IM_DIST,0) 
End),2)  
         From  TDCAJA_DIST  
         Where CO_EMPR = @ISCO_EMPR   
         And   CO_CAJA = @ISCO_CAJA  
         And   AA_CAJA = @ISAA_CAJA  
         And   MM_CAJA = @ISMM_CAJA   
         And   TI_MOVI = @ISTI_MOVI_CAJA   
         And   NU_COMP_CAJA = @ISNU_COMP_CAJA  
  
     If @ISTI_MOVI_CAJA = 'E'  
         Select @VNIM_DIST = Round(Sum(Case When TI_MOVI_OPER = 'A' Then (-1)*IsNull(IM_DIST,0) ELSE IsNull(IM_DIST,0) 
End),2)  
         From  TDCAJA_DIST  
         Where CO_EMPR = @ISCO_EMPR   
         And   CO_CAJA = @ISCO_CAJA  
         And   AA_CAJA = @ISAA_CAJA  
         And   MM_CAJA = @ISMM_CAJA   
         And   TI_MOVI = @ISTI_MOVI_CAJA   
         And   NU_COMP_CAJA = @ISNU_COMP_CAJA  
  
  
     Update TCMOVI_CAJA  
     Set IM_MOVI = Round(IsNull(@VNIM_DIST,0),2),  
         CO_USUA_MODI = @ISCO_USUA_MODI,   
         FE_USUA_MODI = getdate()  
     Where CO_EMPR = @ISCO_EMPR   
     And   CO_CAJA = @ISCO_CAJA   
     And   AA_CAJA = @ISAA_CAJA  
     And   MM_CAJA = @ISMM_CAJA   
     And   TI_MOVI = @ISTI_MOVI_CAJA  
     And   NU_COMP_CAJA = @ISNU_COMP_CAJA   
  
     If @@error <> 0  
        Begin  
          Rollback tran  
     Return  
        End    
commit tran  
  
/*------------------------ Fin ------------------------------*/


GO
